1. Technical Field
The embodiments disclosed herein are related to data integrity in computing devices and more particularly, in networking devices.
2. Related Art
Network devices are commonly used to move network information (which may also be referred to interchangeably, as frames, packets, data or commands) between computing systems (for example, servers) or between computing systems and network devices (for example, storage systems). Various hardware and software components are used to implement network communication. Network devices for example, switches, adapters and others typically communicate using ports that have logic and circuitry for sending and receiving information. The ports typically use receive buffers (or memory storage devices) for receiving and temporarily storing information (for example, frames, packets and other information), before information is sent to an appropriate destination.
Physical size of computing devices and the memory structures used by such devices continue to shrink making them susceptible to single event based errors. As data moves within a device, it ought to be protected at every domain. One way to detect and correct errors is by using error correcting code (ECC). ECC is typically used by data storage and transmission devices. When data is written to a storage location, ECC is computed and stored alongside the data. When the data is read back, the ECC is typically recomputed and compared against ECC stored at the storage location. Any discrepancy is an indication of bit errors in the stored data. By examining the discrepancies between the ECCs, errors can be detected and fixed. Typically, an ECC algorithm is applied to a fixed number of data bits, for example, 32, 64, 128, 256, 512 or 1024 bits. Hamming code and BCH are two examples of using ECC.
Protecting data in multiple domains results in complex circuitry, may increase latency in moving data and may reduce performance of a device to move and/or process information. Continuous efforts are being made to improve data integrity in network and computing devices.